#define _CRT_SECURE_NO_WARNINGS 
//#include<bits/stdc++.h>
//using namespace std;
//using ll = long long;
//ll v[1005];
//ll w[1005];
//ll s[1005];
//ll dp[20005];
//int main()
//{
//	ll N, V;
//	cin >> N >> V;
//	for (ll i = 1; i <= N; i++)
//	{
//		cin >> v[i] >> w[i] >> s[i];
//	}
//	for (ll i = 1; i <= N; i++)
//	{
//		for (ll k = 1; k <= s[i]; s[i] -= k, k *= 2)
//		{
//			for (ll j = V; j >= k * v[i]; j--)
//			{
//				dp[j] = max(dp[j], dp[j - k * v[i]] + k * w[i]);
//			}
//		}
//		if (s[i] > 0)
//		{
//			for (ll j = V; j >= s[i] * v[i]; j--)
//			{
//				dp[j] = max(dp[j], dp[j - s[i] * v[i]] + s[i] * w[i]);
//			}
//		}
//	}
//	cout << dp[V] << endl;
//	return 0;
//}
//#include<bits/stdc++.h>
//using namespace std;
//using ll = long long;
//ll  n, m;
//struct buy
//{
//	ll v, w, s;
//}a[1010];
//ll dp[1010];
//int main()
//{
//	cin >> n >> m;
//	for (ll i = 1; i <= n; i++)
//	{
//		cin >> a[i].v >> a[i].w >> a[i].s;
//	}
//	/*sort(a + 1, a + 1 + n, [](buy a, buy b)
//		{
//			return (a.v / a.w) > (b.v / b.w);
//		});*/
//	for (ll i = 1; i <= n; i++)
//	{
//		for (ll j = 0; j <= m; j++)
//		{
//			/*if (m - a[i].v * a[i].s >= 0)
//			{
//				dp[j] = max(dp[j], dp[j - a[i].v * a[i].s] + a[i].w * a[i].s);
//			}*/
//			/*else
//			{*/
//				for (ll k = a[i].s; k >= 0; k--)
//				{
//					if (m - a[i].v * k >= 0)
//					{
//						dp[j] = max(dp[j], dp[j - a[i].v * k] + a[i].w * k);
//					}
//				}
//			//}
//		}
//	}
//	cout << dp[m] << endl;
//	return 0;
//}
//#include<bits/stdc++.h>
//using namespace std;
//using ll = long long;
//ll  n, m;
//ll v[505];
//ll w[505];
//ll s[505];
//ll dp[10000];
//int main()
//{
//	cin >> n >> m;
//	for (ll i = 1; i <= n; i++)
//	{
//		cin >> v[i] >> w[i] >> s[i];
//	}
//	for (ll i = 1; i <= n; i++)
//	{
//		while (s[i]--)
//		{
//			for (ll j = m; j >= v[i]; j--)
//			{
//				dp[j] = max(dp[j], dp[j - v[i]] + w[i]);
//			}
//		}
//	}
//	cout << dp[m] << endl;
//	return 0;
//}
//#include<bits/stdc++.h>
//using namespace std;
//using ll = long long;
//ll  n, m;
//ll v[505];
//ll w[505];
//ll s[505];
//ll dp[10000];
//int main()
//{
//	cin >> n >> m;
//	for (ll i = 1; i <= n; i++)
//	{
//		cin >> v[i] >> w[i] >> s[i];
//	}
//	for (ll i = 1; i <= n; i++)
//	{
//		for (ll k = 1; k <= s[i]; s[i] -= k, k *= 2)
//		{
//			for (ll j = m; j >= k * v[i]; j--)
//			{
//				dp[j] = max(dp[j], dp[j - k * v[i]] + k * w[i]);
//			}
//		}
//		for (ll j = m; j >= s[i] * v[i]; j--)
//		{
//			dp[j] = max(dp[j], dp[j - s[i] * v[i]] + s[i] * w[i]);
//		}
//	}
//	cout << dp[m] << endl;
//	return 0;
//}
//void Fib(int* fb, const int n)
//{
//	if (n >= 1)
//	{
//		fb[0] = 1;
//	}
//	if (n >= 2)
//	{
//		fb[1] = 1;
//	}
//	for (ll i = 2; i < n; i++)
//	{
//		fb[i] = fb[i - 1] + fb[i - 2];
//	}
//}
//int main()
//{
//	ll n = 0;
//	cin >> n;
//	ll* pb = new ll[n];
//}
//template <typename T>
//void max(T *a, T b)
//{
//	set<int>st;
//	memcpy(st, a, b + 1);
//	return st.top();
//}
//#include<bits/stdc++.h>
//int max(int* a, int n);
//{
//	sort(a, a + n);
//	return a[n - 1];
//}
//double max(double* a, int n);
//{
//	sort(a, a + n);
//	return a[n - 1];
//}
//char max(char* a, int n);
//{
//	sort(a, a + n);
//	return a[n - 1];
//}
//string max(string* a, int n);
//{
//	sort(a, a + n);
//	return a[n - 1];
//}
//double area(double r, double c = 3.14)
//{
//	return c * r * r;
//}
//#include<bits/stdc++.h>
//int sort3(int a, int b, int c)
//{
//	vector<int>arr = { a,b,c };
//	sort(arr.rbegin(), arr.rend());
//	c = arr[0];
//	b = arr[1];
//    c =	arr[2];
//}
//double& cmin(double * s, int n)
//{
//	sort(s, s + n);
//	return s[0];
//}
//double & cmax(double* s, int n)
//{
//	sort(s, s + n);
//	return s[n - 1];
//}
//#include<bits/stdc++.h>
//using namespace std;
//using ll = long long;
//double a, b, d;
//char c;
//int main()
//{
//	cin >> a >> b;
//	cout << a + b << endl;
//	cin >> c >> d;
//	if (isalpha(c))
//	{
//		if ((int)c + d > 26 + (int)'a' || (int)c + d > 26 + (int)'A')
//		{
//			c = (char)(((int)c + d) % 26);
//		}
//		else if ((int)c + d < (int)c)
//		{
//			while ((int)c + d < (int)c)
//			{
//				(int)c + d += 26;
//			}
//			c = (char)((int)c + d);
//		}
//	}
//	cout << c << endl;
//	return 0;
//}
//#include<bits/stdc++.h>
//using namespace std;
//using ll = long long;
//double add(double num, double n)
//{
//    return num + n;
//}
//
//char add(char num, int n) 
//{
//    if (isalpha(num))
//    {
//        int base = isupper(num) ? 'A' : 'a';
//        int offset = num - base;
//        offset = (offset + n) % 26;
//        if (offset < 0)
//        {
//            offset += 26;
//        }
//        return base + offset;
//    }
//    return num;
//
//}
//
//int main() 
//{
//    double a, b;
//    char c;
//    int d;
//
//    cin >> a >> b;
//    cout << add(a, b) << endl;
//
//    cin >> c >> d;
//    cout << add(c, d) << endl;
//
//    return 0;
//}
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
class Rectangle
{
private:
    double width, height;
public:
    Rectangle() : width(1), height(1) {};
    Rectangle(double width,double height) : width(width), height(height) {};
    double getArea()
    {
        return width * height;
    }
    double getPerimeter()
    {
        return (width + height) * 2;
    }

};
int main()
{
    double a, b;
    cin >> a >> b;
    Rectangle x;
    cout << x.getArea() << endl;
    cout << x.getPerimeter() << endl;
    return 0;
}